from hashlib import new

from flask import current_app, jsonify
from flask import render_template
from flask import request
from flask import session

from info import constants
from info import redis_store
from info.models import User, News
from info.utils.response_code import RET
from . import index_blu

@index_blu.route('/')
def index():
    user_id=session.get("user_id",None)
    user= None
    if user_id:
        try:
            user=User.query.get(user_id)
        except Exception as e:
            current_app.logger.error(e)

    news_list=[]
    try:
        # new_list=News.query.order_by(News.clicks.desc()).limit(6)
        new_list=News.query.order_by(News.clicks.desc()).limit(constants.CLICK_RANK_MAX_NEWS)

    except Exception as e:
        current_app.logger.error(e)

    news_dict_li=[]

    for news in news_list:
        news_dict_li.append(news.to_basic_dict())


    data={
        "user":user.to_dict() if user else None,
        "news_dict_li":news_dict_li
    }
    return render_template("news/index.html",data=data)

@index_blu.route('/favicon.ico')
def favicon():
    return current_app.send_static_file('news/facicon.ico')

@index_blu.route("/news_list")
def news_list():

    cid=request.args.get("cid","1")
    page=request.args.get("cid","1")
    per_page=request.args.get("per_page","10")

    try:
        page=int(page)
        cid=int(cid)
        per_page=int(per_page)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.PARAMERR, errmsg="参数错误")
    filters = []
    if cid !=1:
        filters.append(News.category_id==cid)

    try:
        paginate=News.query.filter(*filters).order_by(News.create_time.desc()).pagintae(page,per_page)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(errno=RET.DBERR, errmsg="数据查询错误")
    news_model_list = paginate.items
    total_page = paginate.pages
    current_page=paginate.page

    news_dict_li=[]
    for news in news_model_list:
        news_dict_li.append(new.to_basic_dict())

    data= {
        "total_page": total_page,
+        "current_page": current_page,
+        "news_dict_li": news_dict_li
    }
    return jsonify(errno=RET.OK, errmsg="OK",data=data)






